1. T : Type
2. T List
3. u : T 4. v : T List
5. x, y:T.
5. no_repeats(T;v) adjacent(T;v;x;y) (z:T. z before yv (z before xv (z = x)))
6. x : T 7. y : T 8. no_repeats(T;[u / v])
9. 0 < ||v||
10. x = u 11. y = hd(v)
12. z : T 13. z = u 14. (yv)
((z = u & (xv)) z before xv) (z = x)